package com.ruoyi.bole.mapper;

import java.util.List;
import com.ruoyi.bole.domain.BoleContent;
import com.ruoyi.bole.domain.BoleContentImage;
import com.ruoyi.bole.vo.ResultVO;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

/**
 * 内容信息Mapper接口
 * 
 * @author WuJiaLe
 * @date 2025-03-22
 */
public interface BoleContentMapper 
{
    //查询浏览量和报名数
    @Select("SELECT " +
            "bc.view_count AS ViewCount, " +
            "(SELECT COUNT(*) FROM bole_event_registration WHERE content_id = #{contentId}) AS registrationCount " +
            "FROM bole_content bc " +
            "WHERE bc.content_id = #{contentId}")
    ResultVO getViewAndRegistrationCount(Long contentId);

    //浏览量加1
    @Update("update bole_content set view_count = view_count + 1 where content_id = #{contentId}")
    public int updateBoleContentViewCount(Long contentId);
    /**
     * 查询内容信息
     * 
     * @param contentId 内容信息主键
     * @return 内容信息
     */
    public BoleContent selectBoleContentByContentId(Long contentId);

    /**
     * 查询内容信息列表
     * 
     * @param boleContent 内容信息
     * @return 内容信息集合
     */
    public List<BoleContent> selectBoleContentList(BoleContent boleContent);

    /**
     * 新增内容信息
     * 
     * @param boleContent 内容信息
     * @return 结果
     */
    public int insertBoleContent(BoleContent boleContent);

    /**
     * 修改内容信息
     * 
     * @param boleContent 内容信息
     * @return 结果
     */
    public int updateBoleContent(BoleContent boleContent);

    /**
     * 删除内容信息
     * 
     * @param contentId 内容信息主键
     * @return 结果
     */
    public int deleteBoleContentByContentId(Long contentId);

    /**
     * 批量删除内容信息
     * 
     * @param contentIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteBoleContentByContentIds(Long[] contentIds);

    /**
     * 批量删除内容图片
     * 
     * @param contentIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteBoleContentImageByContentIds(Long[] contentIds);
    
    /**
     * 批量新增内容图片
     * 
     * @param boleContentImageList 内容图片列表
     * @return 结果
     */
    public int batchBoleContentImage(List<BoleContentImage> boleContentImageList);
    

    /**
     * 通过内容信息主键删除内容图片信息
     * 
     * @param contentId 内容信息ID
     * @return 结果
     */
    public int deleteBoleContentImageByContentId(Long contentId);
}
